package leetcode13;

import java.util.PriorityQueue;

public class test70 {
    /**
     * 215. 数组中的第K个最大元素
     * @param nums
     * @param k
     * @return
     */
    // 方法一：小根堆
    // 方法二：快速选择
    // 方法三：排序
    public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> minHeap = new PriorityQueue<>(k);
        int len = nums.length;
        for(int i = 0;i < k;i++){
            minHeap.offer(nums[i]);
        }
        for(int i = k;i < len;i++){
            int top = minHeap.peek();
            if(top < nums[i]){
                minHeap.poll();
                minHeap.offer(nums[i]);
            }
        }
        return minHeap.peek();
    }
}
